using System;
using System.ServiceModel;
using System.ServiceModel.Description;
namespace Net35.Xrm.Sdk.Client
{
	public interface IServiceManagement<TService>
	{
		System.ServiceModel.Description.ServiceEndpoint CurrentServiceEndpoint
		{
			get;
			set;
		}
		AuthenticationProviderType AuthenticationType
		{
			get;
		}
		IssuerEndpointDictionary IssuerEndpoints
		{
			get;
		}
		CrossRealmIssuerEndpointCollection CrossRealmIssuerEndpoints
		{
			get;
		}
		PolicyConfiguration PolicyConfiguration
		{
			get;
		}
		System.ServiceModel.ChannelFactory<TService> CreateChannelFactory();
		System.ServiceModel.ChannelFactory<TService> CreateChannelFactory(ClientAuthenticationType clientAuthenticationType);
		System.ServiceModel.ChannelFactory<TService> CreateChannelFactory(System.ServiceModel.Description.ClientCredentials clientCredentials);
		AuthenticationCredentials Authenticate(AuthenticationCredentials authenticationCredentials);
		IdentityProvider GetIdentityProvider(string userPrincipalName);
	}
}
